#include <bits/stdc++.h>
using namespace std;

int k, x, y;

void dfs(int a, int b, int len, int x, int y)
{
	if(len == 1) return;
	len /= 2;
	if(x < a + len && y < b + len) // 公主在左上角
	{
		printf("%d %d %d\n", a + len, b + len, 1);
		dfs(a, b, len, x, y);
		dfs(a, b + len, len, a + len - 1,b + len);
		dfs(a + len, b, len, a + len,b + len - 1);
		dfs(a + len, b + len, len, a + len, b + len);
	}
	else if(x >= a + len && y >= b + len) // 公主在右下角
	{
		printf("%d %d %d\n", a + len - 1, b + len - 1, 4);
		dfs(a, b, len, a + len - 1, b + len - 1);
		dfs(a, b + len, len, a + len - 1,b + len);
		dfs(a + len, b, len, a + len,b + len - 1);
		dfs(a + len, b + len, len, x, y);
	}
	else if(x >= a + len) // 公主在左下角
	{
		printf("%d %d %d\n", a + len - 1, b + len, 3);
		dfs(a, b, len, a + len - 1, b + len - 1);
		dfs(a, b + len, len, a + len - 1,b + len);
		dfs(a + len, b, len, x, y);
		dfs(a + len, b + len, len, a + len, b + len);
	}
	else // 公主在右上角
	{
		printf("%d %d %d\n", a + len, b + len - 1, 2);
		dfs(a, b, len, a + len - 1, b + len - 1);
		dfs(a, b + len, len, x, y);
		dfs(a + len, b, len, a + len, b + len - 1);
		dfs(a + len, b + len, len, a + len, b + len);
	}
}

int main()
{
	cin >> k >> x >> y;
	k = (1 << k);
	dfs(1, 1, k, x, y);
	return 0;
}